package com.ruoyi.iot.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.time.Instant;
import java.time.LocalDateTime;

@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("气象站采样数据查询返回响应实体类")
public class WeatherVO {

    @ApiModelProperty(value = "主键 ID")
    private Integer id;

    @ApiModelProperty(value = "传感器设备编号: 传感器ID")
    private String sensorId;

    @ApiModelProperty(value = "数据采集时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "Asia/Shanghai")
    private Instant dataTime;

    @ApiModelProperty(value = "接口编号")
    private Integer interfaceId;

    @ApiModelProperty(value = "空气温度 (单位：摄氏度)")
    private Float airTemperature;

    @ApiModelProperty(value = "空气湿度 (单位：%")
    private Float airHumidity;

    @ApiModelProperty(value = "大气压力 (单位：hPa)")
    private Float pressure;

    @ApiModelProperty(value = "风速 (单位：m/s)")
    private Float windSpeed;

    @ApiModelProperty(value = "风向 (单位：角度)")
    private Float windDirection;

    @ApiModelProperty(value = "紫外线指数")
    private Float uvIndex;

    @ApiModelProperty(value = "太阳辐射 (单位：W/m²)")
    private Float solarRadiation;

    @ApiModelProperty(value = "日蒸发量 (单位：mm)")
    private Float dailyEvaporation;

    @ApiModelProperty(value = "降雨量 (单位：mm)")
    private Float rainfall;

    @ApiModelProperty(value = "土壤体积含水量 1 (单位：%)")
    private Float soilVwc1;

    @ApiModelProperty(value = "土壤温度 1 (单位：摄氏度)")
    private Float soilTemperature1;

    @ApiModelProperty(value = "土壤电导率 1 (单位：μS/cm)")
    private Float soilEC1;

    @ApiModelProperty(value = "土壤体积含水量 2 (单位：%)")
    private Float soilVwc2;

    @ApiModelProperty(value = "土壤温度 2 (单位：摄氏度)")
    private Float soilTemperature2;

    @ApiModelProperty(value = "土壤电导率 2 (单位：μS/cm)")
    private Float soilEC2;

}
